package com.admin.business.background.venusOrganize;

import com.tiangong.framework.annotation.OpenApi;
import com.tiangong.framework.bo.CDO;
import com.tiangong.framework.bo.Return;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * @description: 企业信息表
 * @create: 2023-10-23 14:31:53
 **/
@Service("venusOrganizeService")
@Slf4j
public class VenusOrganizeService{

    @Resource
    VenusOrganizeDao venusOrganizeDao;

    /**
     * 添加企业信息表,获取org_id数据
     *
     * @param cdoRequest - org_id:主键
     *                   - org_parent_id:父id
     *                   - org_biggest_id:总公司
     *                   - org_sys_user_id:创建人
     *                   - org_name:名称
     *                   - org_institution_code:机构代码
     *                   - org_enterprise_mailbox:机构邮箱
     *                   - org_business_license:营业执照
     *                   - org_legal_person_id:法人id
     *                   - org_admin_id:管理员id
     *                   - org_official_letter:公函
     *                   - org_status:状态：1正常2审核中3审核不通过4禁用5删除
     *                   - org_logo:公司logo
     *                   - org_create_time:创建时间
     *                   - org_abbreviations:企业简称
     *                   - org_account:对公账户
     *                   - org_create_bank:开户银行
     *                   - invoice_contact_phone:开票咨询电话
     *                   - collections_contact_phone:收款咨询电话
     *                   - org_bank_line_number:银行行号
     *                   - org_office_local:办公地方
     *                   - org_register_place:注册地点
     *                   - org_established_time:成立时间
     *                   - org_staff_size:人员规模
     *                   - org_official_open:官网开通(1开通 2 不开通)
     *                   - org_second_domain:二级域名
     *                   - org_official_template_id:官网模板
     *                   - org_code_template_id:工牌模板选择
     *                   - org_card_template_id:名片模板选择
     *                   - org_chest_card_template_id:胸卡模板选择
     *                   - org_seal_invoice:发票章
     *                   - org_seal:企业公章
     *                   - org_contract_seal:合同章
     *                   - org_finance_seal:财务公章
     *                   - org_longitude_and_latitude:经纬度
     *                   - org_postcode:企业邮编
     *                   - org_enterprise_hot_line:企业热线
     *                   - org_cadre_id:企业负责人（非法人），默认为0 2022-10-26--》执行总经理
     *                   - org_province:省
     *                   - org_city:市
     *                   - org_district:区
     *                   - org_code:企业编码
     *                   - org_filiale_num:分公司数量
     *                   - org_department_num:企业部门数量
     *                   - org_project_num:企业项目数量
     *                   - org_rank:企业等级
     *                   - org_empirical_value:经验值
     *                   - org_hot_push:是否为热推企业
     *                   - org_official_view_num:官网浏览数量
     *                   - org_account_book_name:企业账簿名称
     *                   - org_cash_surplus:企业剩余现金
     *                   - org_deposit_bank_residue:企业剩余银行存款
     *                   - org_today_view_num:官网当天访问数量
     *                   - org_month_view_num:官网当月访问数量
     *                   - org_today_income:企业当日收入
     *                   - org_month_income:企业当月收入
     *                   - org_approved_memo:企业审核记录
     *                   - org_update_time:修改时间
     *                   - org_update_user:修改人
     *                   - org_short_name:企业简称
     *                   - org_build_time:成立时间
     *                   - org_title:公司标题
     *                   - org_keyword:关键词
     *                   - org_description:公司描述
     *                   - org_synopsis:公司简介
     *                   - org_menus:已勾选菜单设置
     *                   - org_all_menus:所有菜单
     *                   - progess_num:进度条的个数
     *                   - progess_flag:进度条的显隐
     *                   - org_website_description:官网描述
     *                   - bai_ke_view_num:百度百科点击浏览量
     *                   - orgStreetId:街道id
     *                   - orgStreetName:街道name
     *                   - orgVillageId:社区id
     *                   - orgVillageName:社区name
     * @return
     * @author Ht
     * @create: 2023-10-23 14:31:53
     */
    @OpenApi
    public Return addVenusOrganize(CDO cdoRequest) {
        venusOrganizeDao.addVenusOrganize(cdoRequest);
        CDO cdoResult = new CDO();
        if (cdoRequest.containsKey("org_id")) {
            cdoResult.set("org_id", cdoRequest.get("org_id"));
        }
        return Return.valueOf(cdoResult);
    }

    /**
     * 根据org_id，更新企业信息表数据
     *
     * @param cdoRequest - org_id:主键
     *                   - org_parent_id:父id
     *                   - org_biggest_id:总公司
     *                   - org_sys_user_id:创建人
     *                   - org_name:名称
     *                   - org_institution_code:机构代码
     *                   - org_enterprise_mailbox:机构邮箱
     *                   - org_business_license:营业执照
     *                   - org_legal_person_id:法人id
     *                   - org_admin_id:管理员id
     *                   - org_official_letter:公函
     *                   - org_status:状态：1正常2审核中3审核不通过4禁用5删除
     *                   - org_logo:公司logo
     *                   - org_create_time:创建时间
     *                   - org_abbreviations:企业简称
     *                   - org_account:对公账户
     *                   - org_create_bank:开户银行
     *                   - invoice_contact_phone:开票咨询电话
     *                   - collections_contact_phone:收款咨询电话
     *                   - org_bank_line_number:银行行号
     *                   - org_office_local:办公地方
     *                   - org_register_place:注册地点
     *                   - org_established_time:成立时间
     *                   - org_staff_size:人员规模
     *                   - org_official_open:官网开通(1开通 2 不开通)
     *                   - org_second_domain:二级域名
     *                   - org_official_template_id:官网模板
     *                   - org_code_template_id:工牌模板选择
     *                   - org_card_template_id:名片模板选择
     *                   - org_chest_card_template_id:胸卡模板选择
     *                   - org_seal_invoice:发票章
     *                   - org_seal:企业公章
     *                   - org_contract_seal:合同章
     *                   - org_finance_seal:财务公章
     *                   - org_longitude_and_latitude:经纬度
     *                   - org_postcode:企业邮编
     *                   - org_enterprise_hot_line:企业热线
     *                   - org_cadre_id:企业负责人（非法人），默认为0 2022-10-26--》执行总经理
     *                   - org_province:省
     *                   - org_city:市
     *                   - org_district:区
     *                   - org_code:企业编码
     *                   - org_filiale_num:分公司数量
     *                   - org_department_num:企业部门数量
     *                   - org_project_num:企业项目数量
     *                   - org_rank:企业等级
     *                   - org_empirical_value:经验值
     *                   - org_hot_push:是否为热推企业
     *                   - org_official_view_num:官网浏览数量
     *                   - org_account_book_name:企业账簿名称
     *                   - org_cash_surplus:企业剩余现金
     *                   - org_deposit_bank_residue:企业剩余银行存款
     *                   - org_today_view_num:官网当天访问数量
     *                   - org_month_view_num:官网当月访问数量
     *                   - org_today_income:企业当日收入
     *                   - org_month_income:企业当月收入
     *                   - org_approved_memo:企业审核记录
     *                   - org_update_time:修改时间
     *                   - org_update_user:修改人
     *                   - org_short_name:企业简称
     *                   - org_build_time:成立时间
     *                   - org_title:公司标题
     *                   - org_keyword:关键词
     *                   - org_description:公司描述
     *                   - org_synopsis:公司简介
     *                   - org_menus:已勾选菜单设置
     *                   - org_all_menus:所有菜单
     *                   - progess_num:进度条的个数
     *                   - progess_flag:进度条的显隐
     *                   - org_website_description:官网描述
     *                   - bai_ke_view_num:百度百科点击浏览量
     *                   - orgStreetId:街道id
     *                   - orgStreetName:街道name
     *                   - orgVillageId:社区id
     *                   - orgVillageName:社区name
     * @return
     * @author Ht
     * @create: 2023-10-23 14:31:53
     */
    @OpenApi
    public Return updateVenusOrganizeById(CDO cdoRequest) {
        venusOrganizeDao.updateVenusOrganizeById(cdoRequest);
        return Return.SUCCESS;
    }

    /**
     * 根据org_id，删除企业信息表数据
     *
     * @param cdoRequest - org_id:主键
     * @return
     * @author Ht
     * @create: 2023-10-23 14:31:53
     */
    @OpenApi
    public Return deleteVenusOrganizeById(CDO cdoRequest){
        int count = venusOrganizeDao.deleteVenusOrganizeById(cdoRequest.getLong("org_id"));
        CDO cdoResult = new CDO();
        cdoResult.set("count", count);
        return Return.valueOf(cdoResult);
    }

    /**
     * 根据条件，删除企业信息表数据
     *
     * @param cdoRequest - org_parent_id:父id
     *                   - org_sys_user_id:创建人
     *                   - org_legal_person_id:法人id
     *                   - org_admin_id:管理员id
     *                   - org_status:状态：1正常2审核中3审核不通过4禁用5删除
     *                   - org_create_time:创建时间
     *                   - org_abbreviations:企业简称
     *                   - org_cadre_id:企业负责人（非法人），默认为0 2022-10-26--》执行总经理
     *                   - org_hot_push:是否为热推企业
     *                   - org_official_view_num:官网浏览数量
     *                   - org_today_view_num:官网当天访问数量
     *                   - org_month_view_num:官网当月访问数量
     * @return
     * @author Ht
     * @create: 2023-10-23 14:31:53
     */
    @OpenApi
    public Return deleteVenusOrganize(CDO cdoRequest) {
        int count = venusOrganizeDao.deleteVenusOrganize(cdoRequest);
        CDO cdoResult = new CDO();
        cdoResult.set("count", count);
        return Return.valueOf(cdoResult);
    }

    /**
     * 根据ID，获取企业信息表数据
     *
     * @param cdoRequest - org_id:主键
     * @return
     * @author Ht
     * @create: 2023-10-23 14:31:53
     */
    @OpenApi
    public Return getVenusOrganizeById(CDO cdoRequest) {
        CDO cdoMapperResult = venusOrganizeDao.getVenusOrganizeById(cdoRequest.getLong("org_id"));
        return Return.valueOf(cdoMapperResult);
    }

    /**
     * 根据非空条件，获取企业信息表数据列表
     *
     * @param cdoRequest - org_parent_id:父id
     *                   - org_sys_user_id:创建人
     *                   - org_legal_person_id:法人id
     *                   - org_admin_id:管理员id
     *                   - org_status:状态：1正常2审核中3审核不通过4禁用5删除
     *                   - org_create_time:创建时间
     *                   - org_abbreviations:企业简称
     *                   - org_cadre_id:企业负责人（非法人），默认为0 2022-10-26--》执行总经理
     *                   - org_hot_push:是否为热推企业
     *                   - org_official_view_num:官网浏览数量
     *                   - org_today_view_num:官网当天访问数量
     *                   - org_month_view_num:官网当月访问数量
     * @return
     * @author Ht
     * @create: 2023-10-23 14:31:53
     */
    @OpenApi
    public Return getVenusOrganizeListPage(CDO cdoRequest) {
        Integer pageIndex = cdoRequest.getInteger("pageIndex")-1;
        int recordSize = 10;
        cdoRequest.set("recordFrom", pageIndex * recordSize);
        cdoRequest.set("recordSize", recordSize);
        List<CDO> cdoMapperResultList = venusOrganizeDao.getVenusOrganizeListPage(cdoRequest);
        boolean isEndPage = false;
        if (cdoMapperResultList.size() < recordSize) {
            isEndPage = true;
        }
        CDO cdoResult = new CDO();
        cdoResult.set("isEndPage", isEndPage);
        cdoResult.set("datalist", cdoMapperResultList);
//        int total = venusOrganizeDao.getVenusOrganizeCount(cdoRequest);
//        cdoResult.set("total", total);
        return Return.valueOf(cdoResult);
    }
    /**
     * 根据混合条件，获取企业信息表数据列表
     *
     * @param cdoRequest - org_id:主键
     *                   - org_parent_id:父id
     *                   - org_sys_user_id:创建人
     *                   - org_legal_person_id:法人id
     *                   - org_admin_id:管理员id
     *                   - org_status:状态：1正常2审核中3审核不通过4禁用5删除
     *                   - org_create_time:创建时间
     *                   - org_abbreviations:企业简称
     *                   - org_cadre_id:企业负责人（非法人），默认为0 2022-10-26--》执行总经理
     *                   - org_hot_push:是否为热推企业
     *                   - org_official_view_num:官网浏览数量
     *                   - org_today_view_num:官网当天访问数量
     *                   - org_month_view_num:官网当月访问数量
     * @return
     * @author Ht
     * @create: 2023-10-23 14:31:53
     */
    @OpenApi
    public Return getVenusOrganizeListPageByCondition(CDO cdoRequest) {
        Integer pageIndex = cdoRequest.getInteger("pageIndex")-1;
        int recordSize = 10;
        cdoRequest.set("recordFrom", pageIndex * recordSize);
        cdoRequest.set("recordSize", recordSize);
        List<CDO> cdoMapperResultList = venusOrganizeDao.getVenusOrganizeListPageByCondition(cdoRequest);
        boolean isEndPage = false;
        if (cdoMapperResultList.size() < recordSize) {
            isEndPage = true;
        }
        CDO cdoResult = new CDO();
        cdoResult.set("isEndPage", isEndPage);
        cdoResult.set("datalist", cdoMapperResultList);
//        int total = venusOrganizeDao.getVenusOrganizeCount(cdoRequest);
//        cdoResult.set("total", total);
        return Return.valueOf(cdoResult);
    }
}
